ควรทำอย่างไร? เมื่อทำ Key Pair หายไปจาก EC2 – บทความนี้มีคำตอบ

ควรทำอย่างไร? เมื่อทำ Key Pair หายไปจาก EC2 – บทความนี้มีคำตอบ

ถ้า Key pair โดนลบไป หรือ หายไปจาก EC2 เราสามารถแก้ไขปัญหานี้ได้โดยไม่กี่ขั้นตอนง่ายๆ เพียงแค่สร้าง Key pair ตัวใหม่ขึ้นมา และไปตั้งค่าที่ Edit user data ใน EC2 Instance ของเรา เพียงเท่านี้ก็สามารถกล้บมาใช้งาน EC2 Instance ที่เรากำลังใช้งานอยู่ได้อย่างต่อเนื่อง
Clock Icon2022.03.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

สวัสดีเพื่อนๆ ชาว Amazon Service ทุกท่าน ผมป๊อปครับ ครั้งนี้ผมจะมาแนะนำเกี่ยวกับวิธีการเปลี่ยน Key pair ในกรณีที่ Key pair ตัวเก่าโดนลบไป หรือ หายไปด้วยเหตุผลอื่นๆ ครับ

สิ่งที่ต้องมี

ในกรณีที่มี EC2 Instance อยู่แล้ว แต่เผลอลบ Key Pair หรืออาจจะหายไปจากสาเหตุอื่นๆ สามารถข้ามขั้นตอนการสร้าง EC2 ไปได้เลย

แต่สำหรับผู้ที่ต้องการทดสอบทำการเปลี่ยน Key Pair ก็ต้องทำการสร้าง EC2 Instance ขึ้นมาก่อน โดยในตัวอย่างนี้จะใช้เป็นชื่อtinnakorn-reset-keypairสามารถดูวิธีการได้ที่ลิงก์ด้านล่างนี้เลย

ลบ Key Pair ตัวเก่าออกจาก Console EC2

เมื่อติดตั้งเสร็จเรียบร้อยแล้ว ให้ทำการลบ Key Pair ตัวเก่าออกจากหน้า Console EC2 และไฟล์.ppkในเครื่องคอมพิวเตอร์ของเรา เพื่อจำลองว่า Key Pair ของเราหาย หรือ ถูกลบออกไปจาก EC2

ทีนี้ทำการทดสอบโดยการเข้าไปยัง PuTTy อีกครั้งก็จะเกิด Error
error-no-keypair

มาที่หน้า Console EC2 ในส่วนของฟังก์ชัน Key pairs
เลือก Key pair ของเรา แล้วไปที่Actions ▼ตามด้วยเลือกDelete
del-kp-1

พิมพ์คำว่าDeleteลงในช่องตามคำแนะนำด้านบนเพื่อยืนยันการลบ
del-kp-2

Stop EC2 Instance

เมื่อลบ Key pair และไม่สามารถเข้าไปยัง PuTTy ได้แล้วให้ Stop EC2 Instance เตรียมไว้

มาที่หน้า Console EC2 ในส่วนของฟังก์ชัน Instance
เข้ามายังหน้า Instance ของเรา เลือกInstance state ▼ตามด้วยเลือกStop instance
stop-ec2-1

คลิกStop
stop-ec2-2

เมื่อเสร็จแล้ว Instance state จะเป็น Stopped stop-ec2-3

สร้าง Key Pair ตัวใหม่

สมมุติว่า Key Pair ของเราหาย หรือ ถูกลบออกไปจาก EC2 แล้ว ให้ทำการสร้าง Key Pair ตัวใหม่ขึ้นมา

การสร้าง Key Pair ตัวใหม่นี้จะใช้เป็นชื่อtinnakorn-reset-new-keypair
create_keypair_reset

การจัดการไฟล์ Key Pair ตัวใหม่ด้วย PuTTygen

คลิกที่ Icon ค้นหาตรงแถบเมนูด้านล่าง พิมพ์คำว่า?︎ PuTTYgenลงไป และคลิกเข้าไปที่PuTTYgen
puttygen-1

เมื่อเปิดขึ้นมาแล้วจะมีหน้าตาแบบนี้ คลิกที่Loadได้เลย
puttygen-2

เลือกไฟล์ key pair ที่เราเก็บไว้ โดยปกติแล้วจะอยู่ใน Download จากนั้นคลิกOpen
puttygen-3

เมื่อทำการ Load เข้ามาแล้ว ให้ Copy Key ในช่องสีแดงนี้
puttygen-4-fix

ต่อมาพิมพ์ssh-rsaแล้วเว้นวรรค 1 ครั้ง ตามด้วยวาง Public key pair ที่ Copy มาเมื่อสักครู่นี้ จากนั้นทำให้เป็นบรรทัดเดียวกันทั้งหมด เช่น

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAA...

ในรูปด้านล่างนี้ไม่มีการเว้นบรรทัด ทุกตัวอักษรคือบรรทัดเดียวกันหมด
puttygen-7-fix

การเชื่อมต่อ Key pair ใน Edit user data

เราจะทำการเชื่อมต่อ Key pair โดยการเพิ่ม Code ลงใน Edit user data

เลือกActions ▼เลือกInstance settings ▶และเลือกEdit user data
edit-user-data-1

เมื่อเข้ามาแล้วเลื่อนลงมาด้านล่างสุด จะมีช่องให้ใส่ Code ช่องนี้คือ Textarea สามารถปรับขนาดได้ตามต้องการ (ต้อง Stop Instance ก่อน จึงจะสามารถใส่ Code ลงไปได้)

จากนั้น Copy Code ด้านล่างนี้วางลงในช่อง Textarea

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [users-groups, always]
users:
  - name: ec2-user
    ssh-authorized-keys: 
    - PublicKeypair

ให้ลบPublicKeypairตรงบรรทัดสุดท้ายออก แล้วใส่ Public Keypair ลงไปแทนที่ตามรูปภาพด้านล่าง ตามด้วยคลิกSaveเพียงเท่านี้การตั้งค่าก็เสร็จเรียบร้อย edit-user-data-2-fix

ทดสอบการเชื่อมต่อของ Amazon Linux 2

เข้ามาที่ EC2 Instance ของเราอีกครั้ง
เลือกInstance state ▼และเลือกStart instance
edit-user-data-3

กลับมาที่ PuTTy ในส่วนของ Connection > SSH > Auth แล้วทำการBrowse...ไฟล์.ppkเข้ามาใหม่
จากนั้นไปที่หัวข้อ Session แล้วSaveการตั้งค่าของ PuTTy อีกครั้ง และกดOpen
edit-user-data-4

จะเห็นว่าเราสามารถใช้ Key pair ตัวใหม่ Login เข้ามายัง Amazon Linux 2 ได้แล้ว
edit-user-data-5

สรุป

การสาธิตของการเชื่อมต่อ Key pair ที่เราเผลอไปลบ หรือ หายไปด้วยสาเหตุอื่นๆ สามารถแก้ไขได้ง่ายๆ โดยสร้าง Key pair ตัวใหม่ขึ้นมาแล้วทำการตั้งค่าที่ Edit user data ใน EC2 Instance แล้วลองทำการเชื่อมต่อ Amazon Linux 2 อีกครั้ง ถ้าสามารถ Login ได้ก็หมายความว่าการตั้งค่าเสร็จสมบูรณ์นั่นเองครับ

หวังว่าจะเป็นประโยชน์ให้กับเพื่อนๆ ที่เจอกับปัญหานี้ด้วยครับ ขอบคุณครับ ?

บทความที่เกี่ยวข้อง

อ้างอิง : https://aws.amazon.com/premiumsupport/knowledge-center/user-data-replace-key-pair-ec2/

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.